Java SDK API文档
本文档将详细介绍Java SDK的API,如果您想要了解如何接入,建议您阅读Java SDK 使用指南获得安装并使用SDK的方法。您可以在访问GitHub获取Java SDK的源代码。
最新版本为:1.3.1
更新时间为:2019-09-27
一、实例化类
Java SDK共提供三种Consumer,分别为写入本地文件的LoggerConsumer,直接上传数据的BatchConsumer,以及调试用的DebugConsumer
1. LoggerConsumer:批量实时写本地文件,按配置切分文件
LoggerConsumer(ThinkingDataAnalytics.LoggerConsumer.Config config)
/**
*创建指定配置信息的 LoggerConsumer
*@param config 传入LoggerConsumer.Config对象来设置上报参数
*/
LoggerConsumer(String log_directory)
/**
*创建指定日志存放目录的LoggerConsumer, 单个日志文件默认按天切分,无大小限制
*@param log_directory 日志存放目录
*/
LoggerConsumer(String log_directory, int maxFileSize)
/**
*创建指定日志存放目录的 LoggerConsumer, 并指定单个日志文件大小, 单个日志文件按天、按大小切分
*@param log_directory 日志目录
*@param maxFileSize 单个日志文件大小限制,单位 MB
*/
1.1 LoggerConsumer.Config:LoggerConsumer的配置类
Config(String log_directory)
/**
*创建指定日志存放路径的 LoggerConsumer 配置
*@param log_directory 日志存放路径
*/
Config(String log_directory, int maxFileSize)
/**
*创建指定日志存放路径的 LoggerConsumer 配置
*@param log_directory 日志存放路径
*@param maxFileSize 日志大小, 单位 MB, 默认为 1024 MB
*/
setBufferSize(int bufferSize)
/**
*设置缓冲区容量, 当超过该容量时会触发 flush 动作
*@param bufferSize 缓冲区大小,单位 byte.
*/
setFileSize(int maxFileSize)
/**
*设置日志大小
*@param maxFileSize 日志大小,单位 MB
*/
setRotateMode(ThinkingDataAnalytics.LoggerConsumer.RotateMode rotateMode)
/**
*设置日志切分模式
*@param rotateMode 日志切分模式
* DAILY 按日切分
* HOURLY 按小时切分
*/
2. BatchConsumer:批量实时向服务器传输数据(不建议在生产环境中使用)
BatchConsumer(String server_uri,String appid)
/**
*生成BatchConsumer,用于实时地向服务器传输数据,不需要配合其他的传输工具
*@param server_uri 传输数据的uri
*@param appid 服务器验证的token
*默认传输数据的大小为500行
*/
BatchConsumer(String server_uri, String appid, int batch,int timeout, int interval)
/**
*生成BatchConsumer,用于实时向服务器传输数据,不需要配合其他的传输工具
*@param server_uri 传输数据的uri
*@param appid 服务器验证的token
*@param batch 最大传输数据量,单位是数据的条数,默认为20条数据
*@param timeout 请求的超时时间,单位为毫秒,默认为30秒.
*@param interval 推送数据的最大时间间隔,单位是秒,默认为3秒.
*/
3. DebugConsumer:调试用的实例,逐条上报,如果存在数据错误,数据将无法入库,同时将会返回详细的错误原因
DebugConsumer(String serverUrl, String appId)
/**
*创建指定接收端地址和 APP ID 的 DebugConsumer
*@param serverUrl 接收端地址
*@param appId APP ID
*/
4. 获得SDK实例
ThinkingDataAnalytics(final Consumer consumer)
/**
* 获得SDK实例,接收一个Consumer的实例化对象
* @param consumer BatchConsumer、LoggerConsumer或ProduceKafka实例
*/
二、数据操作:
1. 上传事件
void track(String account_id,String distinct_id,String event_name,Map<String,Object> properties)
/**
* 上传事件
* @param ccount_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param event_name 事件名称
* @param properties 事件属性,支持的类型为Number, String, Date, Boolean
* @throws InvalidArgumentException 数据错误
*/
2. 设置公共属性
void setSuperProperties(Map<String, Object> properties)
/**
* 设置公共属性,只用于track接口,其他接口无效,每次上传事件时自动添加设置的公共属性
* @param properties 公共属性
*/
3. 清除公共属性
void clearSuperProperties()
/**
* 清空所有的公共事件属性,在下次设置之前,上传事件将不再带有公共属性
*/
4. 设置用户属性
void user_set(String account_id,String distinct_id,Map<String,Object> properties)
/**
* 设置用户属性,如果该用户已经存在该属性,则覆盖,如果不存在则新建该属性
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param properties 设置的用户属性
* @throws InvalidArgumentException 数据错误
*/
5. 设置单次用户属性
void user_setOnce(String account_id,String distinct_id,Map<String,Object> properties)
/**
* 设置用户属性,如果该用户已经存在该属性,不进行覆盖,如果不存在则新建该属性
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param properties 设置的用户属性
* @throws InvalidArgumentException 数据错误
*/
6. 累加用户属性
void user_add(String account_id,String distinct_id,Map<String,Object> properties)
/**
* 累加用户属性,只支持Number类型的属性做累加操作
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param properties 增加的用户属性
* @throws InvalidArgumentException 数据错误
*/
7. 删除用户
void user_del(String account_id,String distinct_id)
/**
* 删除用户的接口,请注意该操作可能产生不可逆的后果,请慎用
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @throws InvalidArgumentException 数据错误
*/
8. 立即上传数据
void flush()
/**
* 立即提交数据到相应的接收器
*/
9. 关闭并退出SDK
void close()
/**
* 关闭并退出sdk
*/